<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-us" xml:lang="en-us">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<meta name="copyright" content="(C) Copyright 2005" />
<meta name="DC.rights.owner" content="(C) Copyright 2005" />
<meta content="reference" name="DC.Type" />
<meta name="DC.Title" content="New &amp; Noteworthy" />
<meta name="abstract" content="Here are descriptions of some of the more interesting or significant changes made to the Memory Analyzer for the 0.8 release." />
<meta name="description" content="Here are descriptions of some of the more interesting or significant changes made to the Memory Analyzer for the 0.8 release." />
<meta content="XHTML" name="DC.Format" />
<meta content="ref_noteworthy" name="DC.Identifier" />
<meta content="en-us" name="DC.Language" />
<link href="styles/commonltr.css" type="text/css" rel="stylesheet" />
<title>New &amp; Noteworthy</title>
</head>
<body id="ref_noteworthy"><a name="ref_noteworthy"><!-- --></a>


	<h1 class="topictitle1">New &amp; Noteworthy</h1>

	
	<div><p>Here are descriptions of some of the more interesting or
		significant changes made to the Memory Analyzer for the 0.8 release.
	</p>

		<div class="section"><h2 class="sectiontitle">Support IBM Heap Dumps</h2>
			
			<p>
				The IBM-family of Virtual Machines (VM) write heap dumps in
				various
				formats: PHD (portable heap dump), system dump, etc. IBM's
				Diagnostic Tool Framework for Java provides an API to read those
				heap dumps. After installing DTFJ, one can view and analyze IBM
				dumps with the same comfort as HPROF dumps.
			</p>


			<p>
				Download
				<a href="http://www.ibm.com/developerworks/java/jdk/tools/dtfj.html">IBM Diagnostic Tool Framework for Java Version 1.3</a>
				from IBM Developer Works.
			</p>


		</div>


		<div class="section"><h2 class="sectiontitle">Stack Frames</h2>
			
			<p>
				Heap dumps from the latest VMs include stack trace information,
				linking local GC roots to specific stack frames of specific
				threads.
				This information is now available via
				<em>Java Basics / Thread Stacks</em>
				query.
			</p>

			<p>
				Supported heap dumps formats are HPROF (starting with Java 6
				Update 14 and Java 7) as well as DTFJ-formatted dumps.
			</p>


			<img src="mimes/nn_thread_stacks.png" alt="Tree of of threads including stack frames, local variables and&#10;&#9;&#9;&#9;&#9;&#9;their outgoing references." />
		</div>


		<div class="section"><h2 class="sectiontitle">Histogram of Unreachable Objects</h2>
			
			<p>
				A heap dump can contain unreachable objects, e.g. objects which
				should be garbage collected but stay around for various reasons.
				Usually this is due to optimizations in the garbage collection
				algorithm. The Memory Analyzer removes these objects by default from
				the object graph.
			</p>

			<p>
				Now one can use the
				<em>Java Basics / Unreachable Objects Histogram</em>
				to view the objects that have been removed. Alternatively, one can
				parse the heap dump providing the
				<samp class="codeph">-keep_unreachable_objects</samp>
				flag. Using the flag, unreachable objects will be marked with the GC
				Root Type "unkown".
			</p>

			<img src="mimes/nn_unreachable_histogram.png" alt="Histogram of unreachable objects." />
			<p>
				Find more information in the
				<a href="http://wiki.eclipse.org/MemoryAnalyzer/FAQ#How_to_analyse_unreachable_objects">
					Memory Analyzer FAQ
				</a>
				.
			</p>

		</div>


		<div class="section"><h2 class="sectiontitle">Inspector Enhancements</h2>
			
			<p>This great contribution from the Chris Grindstaff, recreates
				colors and images from the information in the heap dump and displays
				the information in the lower left corner of the inspector. 
			</p>


			<img src="mimes/nn_inspector_imagedata.png" alt="Inspector showing an icon from the heap dump." />

			<img src="mimes/nn_inspector_rgb.png" alt="Inspector showing the color of the RGB object." />
		</div>


		<div class="section"><h2 class="sectiontitle">Class Hierarchy in Inspector</h2>
			
			<p>The inspector displays now the full class hierarchy of any
				selected object. One can drill-down via context menus.</p>


			<img src="mimes/nn_inspector_class_hierarchy.png" alt="Inspector showing the class hierarchy of an object." />
		</div>


		<div class="section"><h2 class="sectiontitle">Waste in Char Arrays</h2>
			
			<p>This query finds strings that retain wasteful char arrays. Those
				strings are usually created by the substring function, which keeps
				the whole array but uses only part of the chars.
			</p>


			<img src="mimes/nn_query_waste_char_arrays.png" alt="Query displaying waste in char arrays." />
		</div>


	</div>

<div />

</body>
</html>